草庐IT

Swift 递归枚举

全部标签

c# - 还有另一种测试枚举位域的方法吗?

将枚举与位字段一起使用时:enumReallyBigEnum{FirstChoice=0x01,AnotherOption=0x02}ReallyBigEnumflag=ReallyBigEnum.FirstChoice|ReallyBigEnum.AnotherOption;用于测试位的代码是:if((flag&ReallyBigEnum.AnotherOption)==ReallyBigEnum.AnotherOption){...}这看起来冗长且容易出错,因为需要重复该位正在测试中。如果有某种表达方式就好了:if(flag.IsSet(ReallyBigEnum.AnotherO

c# - 为什么 C# 允许无效的枚举值

我花了一段时间试图理解为什么我的WPF应用程序没有正确地数据绑定(bind)到枚举属性,这就是原因。staticvoidMain(string[]args){MyEnumx=0;Console.WriteLine(x.ToString());Console.ReadLine();}publicenumMyEnum{First=1,Second=2}本质上,问题是在我绑定(bind)到的类的构造函数中没有为枚举属性设置默认值,因此它默认为零。有什么方法可以告诉C#编译器我希望它只接受有效值(并且默认为最低值)?我不希望我的属性接受无效值,我不想为每个使用枚举的属性编写setter代码。

c# - 在 C# 中模拟 CTE 递归

假设有以下CTE返回我拥有的一些树数据(邻接模型)的级别(取自HierarchicaldatainLinq-optionsandperformance):WITHhierarchy_cte(id,parent_id,data,lvl)AS(SELECTid,parent_id,data,0ASlvlFROMdbo.hierarchical_tableWHERE(parent_idISNULL)UNIONALLSELECTt1.id,t1.parent_id,t1.data,h.lvl+1ASlvlFROMdbo.hierarchical_tableASt1INNERJOINhierar

c# - 如何在 Entity Framework 代码优先方法中映射自身的递归关系

我想要创建的只是基本的递归类别。如果RootCategory_Id设置为null,则类别为根;如果设置为某个id,则它属于其他某个类别。我在Seed()方法中添加了带有两个子类别的类别进行测试,但它不起作用。(后来查了DB,有插入)类别模型publicclassCategory{publicintID{get;set;}publicCategoryRootCategory{get;set;}//Thisoneworksgood,italsocreates"RootCategory_Id"indatabaseon"update-database"publicICollectionChil

c# - 枚举列为扩展名?

我有各种枚举用作下拉列表的来源,为了提供用户友好的描述,我为每个枚举添加了一个Description属性,然后执行以下操作:varlist=Enum.GetValues(typeof(MyEnum)).Cast().ToDictionary(k=>k,v=>v.GetAttributeOfType().Description).ToList();上面是重复的,因为我必须在很多地方使用它。我尝试添加一个扩展方法:publicstaticTGetAttributeOfType(thisEnumenumVal)whereT:System.Attribute{vartype=enumVal.G

c# - 带整数字符串的枚举

我有一个公共(public)枚举,如下所示:publicenumoccupancyTimeline{TwelveMonths,FourteenMonths,SixteenMonths,EighteenMonths}我将把它用于DropDown菜单,如下所示:@Html.DropDownListFor(model=>model.occupancyTimeline,newSelectList(Enum.GetValues(typeof(CentralParkLCPreview.Models.occupancyTimeline))),"")现在我正在寻找这样的地方来拥有我的值(value)观

c# - 如何在值共享相同名称的枚举之间进行转换?

如果我想在两个Enum类型之间进行转换,我希望它们的值具有相同的名称,是否有一种简洁的方法,或者我必须这样做:enumcolours_a{red,blue,green}enumcolours_b{yellow,red,blue,green}staticvoidMain(string[]args){colours_aa=colours_a.red;colours_bb;//b=a;b=(colours_b)Enum.Parse(typeof(colours_b),a.ToString());}? 最佳答案 如果您对这两个枚举有严格的控

c# - List<T>.Last() 是否枚举集合?

考虑List的边界是已知的,确实.Last()枚举集合?我问这个是因为documentation说它是由Enumerable定义的(在这种情况下,它将需要枚举集合)如果它确实枚举了集合,那么我可以简单地通过索引访问最后一个元素(正如我们所知的.Count的List),但必须这样做似乎很愚蠢。... 最佳答案 如果集合是IEnumerable,它会枚举集合而不是IList(对于数组或列表,将使用索引)。Enumerable.Last通过以下方式实现(ILSpy):publicstaticTSourceLast(thisIEnumera

c# - 将 [Display(Name = "X")] 与枚举一起使用。 MVC3 ASP.Net 中的自定义 HtmlHelper

我正在使用来自另一个stackoverflow问题的代码片段:namespaceMvcHtmlHelpers{publicstaticclasshtmlHelpers{//////Radiobuttonfor:Adaptedtosupportenumlabelsfromdisplayattributes//////////////////publicstaticMvcHtmlStringRadioButtonForEnum(thisHtmlHelperhtmlHelper,Expression>expression){varmetaData=ModelMetadata.FromLamb

c# - 为什么.NET 没有双向枚举器?

关于SO如何实现双向枚举器(here、here)已被问过几次。我的问题不是如何(这对大多数情况来说是微不足道的),而是为什么.NET平台中不存在这样的类型。publicinterfaceIBidirectionalEnumerator:IEnumerator{boolMovePrev();}显然,有许多集合类型无法实现这一点,因为MoveNext()具有破坏性或更改基础集合的状态。但相反,许多类型可以简单地实现这一点(List、IList、LinkedList、array).为什么不存在这样的类型? 最佳答案 当你设计一个框架时,你